﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data.Linq;
using System.Data.Linq.Mapping;
using System.Globalization;
using System.Data.SqlClient;
using System.Collections;
using System.Data.SqlServerCe;



namespace EWS_Messgenerator
{
    public partial class frmMain : Form
    {
        ArrayList mylist = new ArrayList();

        public frmMain()
        {
            InitializeComponent();  
        }


        private void button1_Click(object sender, EventArgs e)
        {
            if(tmrInsert.Enabled == false)
            {
                tmrInsert.Interval = 60000/ Convert.ToInt32(numMessProMin.Value);
                tmrInsert.Enabled = true;
                button1.Text="Stop generator";
            }
            else
            {
                tmrInsert.Enabled = false;
                button1.Text = "Start generator";
            }
        }

        private void tmrInsert_Tick(object sender, EventArgs e)
        {
            //Liste der Handys
            System.Collections.ArrayList handyListe = new System.Collections.ArrayList();
            
            //Objekt von Randomklasse anlegen um Funktion zur Zufallszahlengenerierung aufzurufen, generateNumber.Next(1,11) generiert Zufallszahl zwischen 1 und 10, generateNumber.Next(linke Grenze die man will + 1, rechte Grenze die man will + 1)
            Random generateNumber = new Random();

            //Liste mit den angelegten Handynummern
            //ArrayList tempList = new ArrayList();
            //tempList = HandyNrGenerator.();

            // Handys mit daten und handynummer befüllen
            for (int i = 0; i < mylist.Count; i++)
            {
                Handy versuch = new Handy();
                versuch.getData(generateNumber, Convert.ToUInt32(Puls_Regler.Value), Convert.ToUInt32(Blutdruck_Regler.Value), Convert.ToUInt32(Atemfrequenz_Regler.Value), Convert.ToUInt32(Sauerstoffsättigung_Regler.Value), Convert.ToUInt32(Tempertaur_Regler.Value));//Convert.ToUInt32(Zustandsregler.Value
                handyListe.Add(versuch);
                versuch.handyNr = Convert.ToUInt32(mylist[i]);
                Handy temp = (Handy)handyListe[i];
                  
            }

            //Verbinndung aufbauen 
            SqlCeConnection conn = new SqlCeConnection(Properties.Settings.Default.EWS_DatabaseConnectionString);
            conn.Open();
            

            //Werte in Datenbank schreiben
            foreach (Handy b in handyListe)
            {
                // Commando aufbauen
                SqlCeCommand cmd = conn.CreateCommand();
                cmd.Connection = conn;
                cmd.CommandText = @"INSERT INTO PatientData (Handynummer,Temperatur,Blutdruck,Puls,Sauerstoffsaettigung,Atemfrequenz,fkPaID,Timestamp) VALUES (@handy,@temp,@blut,@puls,@sauer,@atem,@fk,@time)";
                cmd.Parameters.AddWithValue("@handy",b.handyNr);
                cmd.Parameters.AddWithValue("@temp", b.Handydata.Temperatur);
                cmd.Parameters.AddWithValue("@blut", b.Handydata.Blutdruck);
                cmd.Parameters.AddWithValue("@puls", b.Handydata.Puls);
                cmd.Parameters.AddWithValue("@sauer", b.Handydata.Sauerstoffsaettigung);
                cmd.Parameters.AddWithValue("@atem", b.Handydata.Atemfrequenz);
                cmd.Parameters.AddWithValue("@fk", 1);
                cmd.Parameters.AddWithValue("@time", b.Handydata.timestamp);
                int result = cmd.ExecuteNonQuery();
                
                
                //MessageBox.Show(b.Handydata.Puls.ToString());  

            }
        

            conn.Close();

           
       
        }

        private void checkBox1_CheckedChanged(object sender, EventArgs e)
        {

        }

        private void label2_Click(object sender, EventArgs e)
        {

        }

        private void textBox2_TextChanged(object sender, EventArgs e)
        {

        }

        private void frmMain_Load(object sender, EventArgs e)
        {

        }

        

        private void numericUpDown2_ValueChanged(object sender, EventArgs e)
        {
            HandyNrGenerator PrObj = new HandyNrGenerator();

            Box_Handynummern.Items.Clear();//Boxanzeige "säubern"

            mylist = PrObj.generateHanyNrList(Convert.ToInt32(numAnzahlHandys.Value));//befüllt Handyliste mit numAnzahlHandys.Value Handynummern

            //Zeigt Handynummern aus Liste in Box an
            for (int i = 0; i < mylist.Count; i++)
            {
                Box_Handynummern.Items.Add(mylist[i].ToString());
            }
        }

        private void HandyListe_SelectedIndexChanged(object sender, EventArgs e)
        {

        }

        private void Box_Handynummern_SelectedIndexChanged_1(object sender, EventArgs e)
        {
            
        }

        private void Temperatur_Regler(object sender, EventArgs e)
        {

        }

        private void label3_Click(object sender, EventArgs e)
        {

        }

        private void trackBar4_Scroll(object sender, EventArgs e)
        {
            
        }

        private void lbZustandändern_Click(object sender, EventArgs e)
        {

        }


    }
}
